package com.j.lemon.learn.thread.threadPool;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.*;

/**
 * @Author lijunjun
 * @Date 2019-05-27 17:24
 * @Description
 */
public class ThreadPoolCase1 {
    private static final Logger logger = LoggerFactory.getLogger(ThreadPoolCase1.class);


    //创建一个线程池
    private static final ExecutorService executorService = new ThreadPoolExecutor(50, 100, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingDeque<>());

    //签名
    public static void signUsers() throws InterruptedException {
//        Executors.newFixedThreadPool(100);
//        String aaa = "";
//
//        //100组用户数据，每组13000个
//        List<List<String>> userGroups = new ArrayList<>();
//
//        //模拟查询到的用户数据,130W
//        List<String> users = new ArrayList<>();
//        for (int i = 0; i < 1300000; i++) {
//            users.add(String.valueOf(i));
//        }
//
//        //把130W数据分配到100个数组当中,每个数组13000个
//        List<String> temp = new ArrayList<>();
//        for (int i = 0; i < users.size(); i++) {
//            temp.add(users.get(i));
//            if (temp.size() == 13000) {
//                userGroups.add(temp);
//                temp = new ArrayList<>();
//            }
//        }
//
//        List<Callable<Integer>> tasks = new ArrayList<>();
//
//        //使用线程池处理100个数组，没个线程处理13000个用户
//        for (List<String> userGroup : userGroups) {
//            tasks.add(() -> {
////                for (String user : users) {
//                    //为每个用户进行签名
////                      sign(user);
////                }
//                Thread.sleep(5000);
//                logger.debug(users.size()+"个用户已完成签名");
//                return users.size();
//            });
//        }
//        executorService.invokeAll(tasks);
//        executorService.shutdown();
//        logger.debug("处理完成");

    }

//    static class SignTask implements Callable<Integer>{
//
//        private List<String> users;
//        public SignTask(List<String> users, String aaa) {
//            this.users = users;
//        }
//
//        @Override
//        public Integer call() {
//            for (String user : users){
//                //为每个用户进行签名
////                sign(user);
//            }
//
//            logger.debug(users.size()+"个用户已完成签名");
//            return users.size();
//        }
//    }

    public static void main(String[] args) throws InterruptedException {
        Map<String,Object> map = new HashMap<>();
        map.put("1",1);
        map.put("2",2);
        System.out.println(map.get("1"));
    }


}
